home *** CD-ROM | disk | FTP | other *** search
- *= Open Libraries =********************************************= 15-Apr-95 =*
- * Opens Libraries using the structure from the Variables Mem. *
- * Beware: this routine does not check if it has already been run! *
- * Temp001 = Stores current posn in INPUT struct. *
- * Temp002 = Stores current posn in OUTPUT struct. *
- *===========================================================================*
- * Error will always result in a requester, unless Force_To_Shell is set at *
- * Assembly time, in which case error messages go to the shell. *
- *****************************************************************************
- Open_Libraries
- BClr #SF1_OpnLibErr,STD_F_1(a5) Just in case!
- Lea LibData_Start(pc),a0 Start of struc w/ name-ptrs and ver#s
- Move.l a0,Temp001(a5)
- Lea LibBases_Start(a5),a0 Start of struc to write Base-Adrs to.
- Move.l a0,Temp002(a5)
-
- Bsr.s OpnLib_MainLoop Do the main openning routine.
- BTst #SF1_OpnLibErr,STD_F_1(a5) Any problems?
- Bne OpnLib_Error YES = Call special error rtn.
- RTS NO = Return.
-
- OpnLib_MainLoop
- Move.l Temp002(a5),a0
- Lea LibBases_Finish(a5),a4
- Cmp.l a4,a0 All libraries been openned?
- Blt.s OL_Skp1
- RTS If so, routine done.
-
- OL_Skp1 Move.l Temp001(a5),a0
- Lea LibNames_Start(pc),a1 -._ Point to the name of
- Add.l (a0)+,a1 -' the lib to be openned.
- Move.l (a0)+,d0 Version of lib to be openned.
- Move.l a0,Temp001(a5) Store updated pointer.
-
- N_CallExec OpenLibrary Attempt to open the library.
-
- Tst.l d0 If failed, set flag as such.
- Bne.s OL_Skp2
- BSet #SF1_OpnLibErr,STD_F_1(a5)
- OL_Skp2 Move.l Temp002(a5),a0 -._ Store base adr ptr,
- Move.l d0,(a0)+ -' or a NULL if failed.
- Move.l a0,Temp002(a5) Store updated pointer.
-
- Bra.s OpnLib_MainLoop Do the rest of the struct.
-
-
- IFND No_Requesters
- INCLUDE ASM:Source/Routines/OpenLibraries_Error_Req.s
- ELSE
- INCLUDE ASM:Source/Routines/OpenLibraries_Error_Shell.s
- ENDC
-
-
- *= Close Libraries =*******************************************= 15-Apr-95 =*
- * Closes Libraries which were openned using Open_Libraries. *
- *****************************************************************************
- Close_Libraries
- Lea LibBases_Start(a5),a3 Start of struc w/ Base-Adrs.
-
- CloseLibs_MainLoop
- Lea LibBases_Finish(a5),a4
- Cmp.l a4,a3 All libraries been checked?
- Blt.s CLibs_Skp1
- RTS If so, exit.
- CLibs_Skp1
- Tst.l (a3)+ Does this lib need closing?
- Beq.s CloseLibs_MainLoop If not, skip past it.
-
- Move.l -4(a3),a1 Base pointer to a1 for CloseLib
- Move.l #0,-4(a3) Null the base pointer.
- Move.l a3,-(SP) -.
- N_CallExec CloseLibrary |- Close the lib.
- Move.l (SP)+,a3 -'
- Bra.s CloseLibs_MainLoop Do next library...
-